package com.education.ai.repository;

import com.education.ai.entity.Teacher;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 教师资源库接口
 */
@Repository
public interface TeacherRepository extends JpaRepository<Teacher, Long> {
    
    /**
     * 根据教师工号查询教师
     *
     * @param teacherId 教师工号
     * @return 教师
     */
    Optional<Teacher> findByTeacherId(String teacherId);
    
    /**
     * 根据教师邮箱查询教师
     *
     * @param email 邮箱
     * @return 教师
     */
    Optional<Teacher> findByEmail(String email);
    
    /**
     * 根据教师姓名模糊查询
     */
    List<Teacher> findByNameContaining(String name);
    
    /**
     * 根据学科查找教师
     */
    List<Teacher> findBySubject(String subject);
    
    /**
     * 根据学科和姓名查找教师
     */
    List<Teacher> findBySubjectAndNameContaining(String subject, String name);
    
    /**
     * 判断教师工号是否存在
     *
     * @param teacherId 教师工号
     * @return 是否存在
     */
    boolean existsByTeacherId(String teacherId);
    
    /**
     * 判断邮箱是否存在
     *
     * @param email 邮箱
     * @return 是否存在
     */
    boolean existsByEmail(String email);
    
    /**
     * 根据手机号查询教师
     *
     * @param phone 手机号
     * @return 教师
     */
    Optional<Teacher> findByPhone(String phone);
    
    /**
     * 判断手机号是否存在
     *
     * @param phone 手机号
     * @return 是否存在
     */
    boolean existsByPhone(String phone);

    Optional<Teacher> findByName(String name);
} 